#ifndef VItemData_H
#define VItemData_H					 

#include "VTreeNode.h"

///////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////

/*********************
class VDataField
{
public:
	VDataField() :m_idField(0) {}
	
	void setIdField(int v) { m_idField = v;}
	int idField() const { return m_idField;}
	
	virtual void setValue(const QVariant &v) = 0;
	virtual QVariant value() const = 0;

private:
	int m_idField;
};

///////////////////////////////////////////////////////////////////////////////

class VDataRecord
{
public:
	VDataRecord() :m_idRec(0) {}
	~VDataRecord() { clearAll();}

	void setIdRec(int v) { m_idRec = v;}
	int idRec() const { return m_idRec;}

	void clearAll() { qDeleteAll(m_fields); m_fields.clear();}
	
	int fieldCount() const { return m_fields.count();}
	void appendField(VDataField *field) { m_fields.append(field);}
	VDataField *field(int index) const { return m_fields[index];}
	
private:
	int m_idRec;
	QList<VDataField*> m_fields;
};

///////////////////////////////////////////////////////////////////////////////

class VDataTable
{
public:
	VDataTable() :m_idTable(0) {}
	~VDataTable() { clearAll();}

	void setIdTable(int v) { m_idTable = v;}
	int idTable() const { return m_idTable;}

	void clearAll() { qDeleteAll(m_records); m_records.clear();}

	int recordCount() const { return m_records.count();}
	void appendRecord(VDataRecord *record) { m_records.append(record);}
	VDataRecord *record(int index) const { return m_records[index];}

private:
	int m_idTable;
	QList<VDataRecord*> m_records;
};

///////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////

class VDataString : public VDataField
{
public:
	virtual void setValue(const QVariant &v) { m_value = v.toString();}
	virtual QVariant value() const { return m_value;}

private:
	QString m_value;
};

///////////////////////////////////////////////////////////////////////////////

class VDataInteger : public VDataField
{
public:
	VDataInteger() :m_value(0) {}
	
	virtual void setValue(const QVariant &v) { m_value = v.toInt();}
	virtual QVariant value() const { return m_value;}

private:
	int m_value;
};
***************************************/
///////////////////////////////////////////////////////////////////////////////

#endif
